﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace UI.Desktop
{
    public class ValidacionesEspeciales
    {
        private bool EsValido;

        public ValidacionesEspeciales()
        {
        }

        public bool TipoValidacion(Tipos tip, string cadena)
        {
            switch (tip)
            {
                case Tipos.esNumero: EsNumero(cadena);
                    break;
                case Tipos.esSimbolo: EsSimbolo(cadena);
                    break;
                case Tipos.esMenor30: EsMenor30(cadena);
                    break;
                case Tipos.esMenor50: EsMenor50(cadena);
                    break;
                case Tipos.esLetra: EsLetra(cadena);
                    break;
            }

            return EsValido;
        }

        private void EsNumero(string cadena)
        {
            IniciarFalse();
            char[] arregloChar = cadena.ToCharArray();
            for (int i = 0; i < cadena.Length; i++)
            {
                if(char.IsNumber(arregloChar[i]))
                {
                    EsValido = true;
                    break;
                }
            }
        }

        private void EsSimbolo(string cadena)
        {
            IniciarFalse();
            char[] arregloChar = cadena.ToCharArray();
            for (int i = 0; i < cadena.Length; i++)
            {

                if (!char.IsLetterOrDigit(arregloChar[i]))
                {
                    if (!char.IsWhiteSpace(arregloChar[i]))
                    {
                        EsValido = true;
                        break;
                    }
                }
            }
        }

        private void EsLetra(string cadena)
        {
            IniciarFalse();
            char[] arregloChar = cadena.ToCharArray();
            for (int i = 0; i < cadena.Length; i++)
            {

                if (char.IsLetter(arregloChar[i]))
                {
                    EsValido = true;
                    break;
                }
            }
        }

        private void EsMenor30(string cadena)
        {
            IniciarFalse();
            if (cadena.Length <= 30)
            {
                EsValido=true;
            }
        }

        private void EsMenor50(string cadena)
        {
            IniciarFalse();
            if (cadena.Length <= 50)
            {
                EsValido = true;
            }
        }

        private void IniciarFalse()
        {
            EsValido = false;
        }

        public enum Tipos
        {
            esNumero,
            esSimbolo,
            esMenor50,
            esMenor30,
            esLetra
        }
    }
}
